package com.tedu.API.homeWork;

import com.sun.deploy.association.Action;
import org.junit.Test;

import java.util.*;
import java.util.stream.IntStream;
 class homework3 {
    public static void main(String[] args) {
        //创建多个商品对象，存储在 Set 集合中
        Set<product> set=new HashSet<>();
        set.add(new product("zhang",21,"zhang",true));
        set.add(new product("wang",1001,"北京",false));
        set.add(new product("zhang",1001,"zhang",true));
        //打印输出商品价格 > 1000 的所有商品信息
        set.stream()
                .filter(product -> product.getProductPrice()>1000)
                .forEach(product -> {
                    System.out.println("工资大于1000"+product);
                });
        // 打印售空的商品的信息；

        //售空，sold为false
        set.stream()
                .filter(product -> product.getSold()==true)
                .forEach(product -> System.out.println("售空的商品"+product));

        //打印输出商品产地为"北京"的商品信息
        set.stream()
                .filter(product -> product.getProductAddress()=="北京")
                .forEach(product -> System.out.println("商品产地北京"+product));

        //输入一个商品名，查询出此类商品的信息，如果不存在，则打印商品"商场无此商品
        Scanner scanner=new Scanner(System.in);
        String str=scanner.next().trim();
        //使用forEach循环，会运行两次打印两个结果
        set.forEach(product -> {
            String proName=product.getProductName();
            if (str.equals(proName)){
                System.out.println(str+product);
            }else {
                System.out.println("木有此商品信息");
            }
        });
        //输入一个价格段，查询出集合中所有在这个价格区间的所有商品信息。[0~1023]
        Iterator<product> it=set.iterator();
        int price1=scanner.nextInt();
        int price2=scanner.nextInt();
        while(it.hasNext()){
            int price=it.next().getProductPrice();
            if (price1>price2){
                if (price1>price&&price>price2){
                    System.out.println("符合此区间的商品有："+set);
                }else{
                    System.out.println("没有目前价格商品");
                }
            }else{
                if (price2>price&&price>price1){
                    System.out.println("符合此区间的商品有："+set);
                }else{
                    System.out.println("没有目前价格商品");
                }
            }
        }
        if (scanner!=null){scanner.close();}

    }
    @Test
    public void test4(){
        //随机产生 10 个 0~50 之间的整数，存储在集合中，要求集合中的数据不能重复。
        //创建新set
        Set<Integer> set1=new HashSet<>();
        Random rd=new Random();
        while (set1.size()<50){
            int n=rd.nextInt(50);
            set1.add(n);
        }
        Iterator<Integer> it=set1.iterator();
        while(it.hasNext()){
            Integer i=it.next();
            System.out.print(" "+i);
        }
    }
}
//创建一个商品(Product)类,属性：商品名，商品单价，商品的数量，商品产地。
class product{
    private String productName;
    private int productPrice;
    private String productAddress;
    private boolean sold;

    //构造函数
    public product() {
    }

    public product(String productName, int productPrice, String productAddress,boolean sold) {
        this.productName = productName;
        this.productPrice = productPrice;
        this.productAddress = productAddress;
        this.sold = sold;
    }

    //get set

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public int getProductPrice() {
        return productPrice;
    }

    public void setProductPrice(int productPrice) {
        this.productPrice = productPrice;
    }

    public String getProductAddress() {
        return productAddress;
    }

    public void setProductAddress(String productAddress) {
        this.productAddress = productAddress;
    }

    public boolean getSold() {
        return sold;
    }

    public void setSold(boolean sold) {
        this.sold = sold;
    }
    //toString


    @Override
    public String toString() {
        return "product{" +
                "productName='" + productName + '\'' +
                ", productPrice=" + productPrice +
                ", productAddress='" + productAddress + '\'' +
                '}';
    }

    //重写hashcode() equals()
    public int hashCode() {
        return productName.hashCode();
    }

    public boolean equals(Object obj) {
        boolean flag=false;
        if(this==obj){
            flag=true;
        }else{
            if (obj instanceof product){
                product pro=(product)obj;
                if(this.productName.equals(pro.productName)){
                    flag=true;
                }
            }
        }
        return flag;
    }

}
class testtwo {
    @Test
    public void test5() {
        //键盘输入一个字符串，利用集合去除其重复字符，打印输出最终不同的字符。
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入字符串");
        Set<Character> set1 = new LinkedHashSet<>();
        String str = scanner.next().trim();
        for (int s = 0; s < str.length(); s++) {
            set1.add(str.charAt(s));
        }
//        StringBuilder sb=new StringBuilder();
//        StringBuilder s=sb.append(set1);
//        System.out.println(" "+s);
    }
}